home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / CC_C / 0574.ZIP / STRCAT.ASM < prev    next >
Assembly Source File  |  1986-11-21  |  586b  |  48 lines

  1. include compiler.inc
  2.     ttl    STRCAT, 1.04, 08-30-86, clr
  3.  
  4. ;string function - catenates 2nd string on end of 1st
  5. ;         - catenates 2nd string on end of 1st with max characters
  6.     dseg
  7.  
  8.     cseg
  9.  
  10.     procdef    strncat, <<dest, ptr>, <src, ptr>, <cnt, word>>
  11.     mov    cx,cnt
  12.     jmp    short start
  13.  
  14.     entrdef    strcat
  15.     mov    cx,7fffh
  16.     
  17. start:
  18.     pushreg
  19.     pushds
  20.  
  21.     push    cx
  22.     ldptr    di,dest
  23.     xor    al,al
  24.     mov    cx,7fffh
  25.     cld
  26.     repnz    scasb
  27.     dec    di
  28.     ldptr    si,src
  29.     pop    cx
  30. lp:
  31.     lodsb
  32.     stosb
  33.     or    al,al
  34.     jz    ex
  35.  
  36.     loop    lp
  37.     xor    al,al
  38.     stosb
  39. ;
  40. ex:
  41.     clc
  42.     retptrm    dest
  43.  
  44.     pend    strncat
  45.  
  46.     finish
  47.  
  48.